package com.compomics.multidentparser.crux;

import com.compomics.multidentparser.model.GenericHit;
import com.compomics.multidentparser.model.SearchEngineHit;
import com.compomics.multidentparser.model.SearchEngineType;

public class CruxHit extends GenericHit implements SearchEngineHit {
	
	/**
	 * Scan number.
	 */
    private int scanNumber;
    
    /**
     * Neutral mass value
     */
    private double neutralMass;

    /**
     * Peptide mass value.
     */
    private double peptideMass;

    /**
     * deltaCn = deltaCn is the difference between the top-ranked score and the given score, divided by the top-ranked score.
     */
    private double deltaCn;

    /**
     * Cross-correlation score.
     */
    private double xCorrScore;

    /**
     * Cross-correlation rank.
     */
    private int xCorrRank;

    /**
     * Percolator score (optionally: if percolator was used).
     */
    private double percolatorScore;

    /**
     * Percolator rank (optionally: if percolator was used)
     */
    private int percolatorRank;

    /**
     * q-value for FDR estimation.
     */
    private double qValue;

    /**
     * Posterior error probability (PEP) value.
     */
    private double pepValue;

    /**
     * No. matches per spectrum.
     */
    private int matchesSpectrum;

    /**
     * Cleavage type.
     */
    private String cleavageType;

    /**
     * Protein identifier.
     */
    private String proteinids;

    /**
     * Flanking amino acids concatenated as string.
     */
    private String flankingAA;

    /**
     * Returns the scan number.
     * @return The scan number.
     */
	public int getScanNumber() {
		return scanNumber;
	}

    /**
     * Sets the scan number.
     * @param scanNumber The scan number.
     */
	public void setScanNumber(int scanNumber) {
		this.scanNumber = scanNumber;
	}

    /**
     * Returns the neutral mass.
     * @return The neutral mass.
     */
	public double getNeutralMass() {
		return neutralMass;
	}

    /**
     * Sets the neutral mass
     * @param neutralMass The neutral mass.
     */
	public void setNeutralMass(double neutralMass) {
		this.neutralMass = neutralMass;
	}

    /**
     * Returns the peptide mass.
     * @return The peptide mass.
     */
	public double getPeptideMass() {
		return peptideMass;
	}

    /**
     * Sets the peptide mass.
     * @param peptideMass The peptide mass.
     */
	public void setPeptideMass(double peptideMass) {
		this.peptideMass = peptideMass;
	}

    /**
     * Returns the deltaCn value.
     * @return The deltaCn value
     */
	public double getDeltaCn() {
		return deltaCn;
	}

    /**
     * The deltaCn value.
     * @param deltaCn The deltaCn value.
     */
	public void setDeltaCn(double deltaCn) {
		this.deltaCn = deltaCn;
	}

    /**
     * Returns the cross-correlation score.
     * @return The cross-correlation score.
     */
	public double getXCorrScore() {
		return xCorrScore;
	}

    /**
     * Sets the cross-correlation score.
     * @param xCorrScore The cross-correlation score.
     */
	public void setXCorrScore(double xCorrScore) {
		this.xCorrScore = xCorrScore;
	}

    /**
     * Returns the cross-correlation rank.
     * @return The cross-correlation rank.
     */
	public int getXCorrRank() {
		return xCorrRank;
	}

    /**
     * Sets the cross-correlation rank.
     * @param xCorrRank The cross-correlation rank.
     */
	public void setXCorrRank(int xCorrRank) {
		this.xCorrRank = xCorrRank;
	}

    /**
     * Returns the percolator score.
     * @return The percolator score.
     */
	public double getPercolatorScore() {
		return percolatorScore;
	}

    /**
     * Sets the percolator score.
     * @param percolatorScore The percolator score.
     */
	public void setPercolatorScore(double percolatorScore) {
		this.percolatorScore = percolatorScore;
	}

    /**
     * Returns the percolator rank.
     * @return The percolator rank.
     */
	public int getPercolatorRank() {
		return percolatorRank;
	}

    /**
     * Sets the percolator rank.
     * @param percolatorRank The percolator rank.
     */
	public void setPercolatorRank(int percolatorRank) {
		this.percolatorRank = percolatorRank;
	}

    /**
     * Returns the q-value.
     * @return The q-value.
     */
	public double getQValue() {
		return qValue;
	}

    /**
     * Sets the q-value.
     * @param qValue The q-value.
     */
	public void setQValue(double qValue) {
		this.qValue = qValue;
	}

    /**
     * Returns the number of fragment ion matches per spectrum.
     * @return The number of fragment ion matches per spectrum.
     */
	public int getMatchesSpectrum() {
		return matchesSpectrum;
	}

    /**
     * Sets the number of fragment ion matches per spectrum.
     * @param matchesSpectrum
     */
	public void setMatchesSpectrum(int matchesSpectrum) {
		this.matchesSpectrum = matchesSpectrum;
	}

    /**
     * Returns the cleavage type.
     * @return The cleavage type.
     */
	public String getCleavageType() {
		return cleavageType;
	}

    /**
     * Sets the cleavage type.
     * @param cleavageType The cleavage type.
     */
	public void setCleavageType(String cleavageType) {
		this.cleavageType = cleavageType;
	}

    /**
     * Returns the protein IDs
     * @return The protein IDs.
     */
	public String getProteinids() {
		return proteinids;
	}
	public void setProteinids(String proteinids) {
		this.proteinids = proteinids;
	}

    /**
     * Returns the flanking amino acids.
     * @return The flanking amino acids.
     */
	public String getFlankingAA() {
		return flankingAA;
	}

    /**
     * Sets the flanking amino acids.
     * @param flankingAA The flanking amino acids.
     */
	public void setFlankingAA(String flankingAA) {
		this.flankingAA = flankingAA;
	}

    /**
     * Returns the PEP value.
     * @return The PEP value.
     */
	public double getPepValue() {
		return pepValue;
	}

    /**
     * Sets the PEP value
     * @param pepValue The posterior error probability value.
     */
	public void setPepValue(double pepValue) {
		this.pepValue = pepValue;
	}
	
	@Override
	public SearchEngineType getType() {
		return SearchEngineType.CRUX;
	}
	

    
}
